﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BLL;
using Entities;

namespace QLTB_CTK34
{
    public partial class FrmCapNhapTaiKhoan : Form
    {
        public ThongTinNguoiDung _ttcn;
        public TaiKhoan _taikhoan;
        public FrmCapNhapTaiKhoan()
        {
            InitializeComponent();
            this.MaximizeBox = false;
        }
        public FrmCapNhapTaiKhoan(TaiKhoan tk)
            : this()
        {
            _taikhoan = tk;
            if (Generic.FindByCondition<ThongTinNguoiDung>(x => x.MaTK == tk.MaTK).Count() > 0)
            {
                _ttcn = Generic.FindByCondition<ThongTinNguoiDung>(x => x.MaTK == tk.MaTK).First();
            }
        }
        /// <summary>
        /// Khi click vào button Thoát sẽ thoát form.
        /// </summary>
        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        /// <summary>
        /// Khi click vào button Mặc Định các textbox sẽ trở lại rỗng.
        /// </summary>
        private void btnMacDinh_Click(object sender, EventArgs e)
        {
            txtMaSo.ResetText();
            txtHo.ResetText();
            txtTen.ResetText();
            dtpNgaySinh.ResetText();
            txtDT.ResetText();
            txtChucVu.ResetText();
            txtCMND.ResetText();
            txtTenTK.ResetText();
            txtMatKhau.ResetText();
            txtMatKhau2.ResetText();
        }
        /// <summary>
        /// Lấy thông tin tài khoản.
        /// </summary>
        private TaiKhoan CapNhapTK()
        {
            TaiKhoan tk = new TaiKhoan();
            tk.MaTK = txtMaSo.Text;
            tk.TenDangNhap = txtTenTK.Text;
            tk.MatKhau = txtMatKhau.Text;
            tk.LanCuoiDangNhap = (DateTime?)null;
            tk.TrangThai = "offline";
            return tk;
        }

        private ThongTinNguoiDung CapNhapTT()
        {
            ThongTinNguoiDung ttcn = new ThongTinNguoiDung();
            ttcn.Ho = txtHo.Text;
            ttcn.Ten = txtTen.Text;
            ttcn.NgaySinh = dtpNgaySinh.Value;//string.IsNullOrEmpty(dtpNgaySinh.Value) ? (DateTime?)null : DateTime.Parse(txtNgaySinh.Text);
            if (!string.IsNullOrEmpty(txtDT.Text) &&char.IsNumber(txtDT.Text, txtDT.Text.Length - 1)) 
                ttcn.SDT = int.Parse(txtDT.Text);
            ttcn.CMND = txtCMND.Text;
            ttcn.ChucVu = txtChucVu.Text;
            ttcn.MaTK = txtMaSo.Text;
            return ttcn;
        }
        /// <summary>
        /// Khi click vào button Cập Nhập form làm việc và cập nhập tài khoản vào cơ sở dữ liệu.
        /// </summary>
        private void btnCapNhap_Click(object sender, EventArgs e)
        {
            ActionResult kq = QLTaiKhoan.Update(CapNhapTK(), CapNhapTT(), txtMatKhau2.Text);
            kq.Show();
            if (kq.Success)
            {
				QLNhatKy.ThemNhatKy("Cạp nhật tài khoản");
                DialogResult = DialogResult.OK;
            }
        }
        /// <summary>
        /// Load thông tin tài khoản lên form.
        /// </summary>
        private void LoadText()
        {
            if (_taikhoan != null)
            {
                txtTenTK.Text = _taikhoan.TenDangNhap;
                txtMatKhau.Text = _taikhoan.MatKhau;
                txtMatKhau2.Text = _taikhoan.MatKhau;
                txtMaSo.Text = _taikhoan.MaTK;
            }
            if (_ttcn != null)
            {
                txtHo.Text = _ttcn.Ho;
                txtTen.Text = _ttcn.Ten;
                dtpNgaySinh.Value = dtpNgaySinh.Value;//_ttcn.NgaySinh == null ? "" : _ttcn.NgaySinh.Value.ToShortDateString();
                txtDT.Text = _ttcn.SDT.ToString();
                txtCMND.Text = _ttcn.CMND;
                txtChucVu.Text = _ttcn.ChucVu;
            }
        }

        private void CapNhapTaiKhoan_Load(object sender, EventArgs e)
        {
            LoadText();   
        }
        /// <summary>
        /// Khi click vào button phân quyền hiển thị form phân quyền.
        /// </summary>
        private void btnPhanQuyen_Click(object sender, EventArgs e)
        {

            FrmUpdatePhanQuyenSuDung frmupdate = new FrmUpdatePhanQuyenSuDung(_taikhoan.MaTK);
            frmupdate.ShowDialog();
        }
    }
}
